#pragma once
#include <utils\GameMath.h>

const float TWO_PI = 2.0f * D3DX_PI;

const float SCR_MAX_X = 1024.0f;
const float SCR_MAX_Y = 768.0f;

const float SHOT_DELAY = 0.2f;

const float starsParallaxPeriod = 32.0f;
const float starsParallaxAmplitude = 4096.0f;
// -------------------------------------------------
// Asteroids
// -------------------------------------------------
const int ASTEROID_SIZES[] = {60,120,180,230};
const ds::Rect ASTEROID_TEXTURES_RECTS[] = {
	ds::Rect(500,530, 60, 60),
	ds::Rect(500,410,120,120),
	ds::Rect(500,230,180,180),
	ds::Rect(500,  0,230,230)	
};

// -------------------------------------------------
// Bullet system
// -------------------------------------------------
const ds::Color BULLET_COLOR(0.87f,0.4f,1.0f,1.0f);
const ds::Rect BULLET_RECT(0,0,48,48);
const ds::Vec2 BULLET_SIZE(0.6f,0.2f);
const bool SHOW_BULLET_TRAIL = false;
const float BULLET_SPEED = 50.0f;
const float TRIPLE_BULLETS_TTL = 5.0f;
const float DOUBLE_BULLETS_TTL = 10.0f;
// -------------------------------------------------
// Game core settings
// -------------------------------------------------
const float LEVEL_INFO_TTL = 1.5f;
// number of levels
const int LEVELS = 7;
// number of asteroids for each level
const int SMALL_COUNT[]  = { 0, 5, 5, 2, 4, 4, 6};
const int MEDIUM_COUNT[] = { 0, 2, 5, 0, 0, 2, 0};
const int LARGE_COUNT[]  = { 0, 0, 0, 2, 2, 2, 4};
const int HUGE_COUNT[]   = { 2, 0, 0, 0, 2, 2, 3};
// spawn delay for every level
const float SPAWN_DELAY[] = { 2.0f,2.0f,2.0f,2.0f,2.0f,2.0f};

const float PARTICLE_DISTANCE = 2.0f;
const float PARTICLE_SPEED = 0.01f;

const float FADING_TTL = 3.0f;
const float POWERUP_INFO_TTL = 1.2f;
const int METEOROID_ENERGY = 30;
// ----------------------------------------------
// swimmer settings
// ----------------------------------------------
const ds::Rect SWIMMER_HEAD(0,120,34,30);
const ds::Rect SWIMMER_TAIL(0,100,18,20);
const uint32 TAIL_COUNT = 6;
const float TARGET_DISTANCE = 10.0f;
const int SWIMMER_ENERGY = 80;
const int SWIMMER_IMPACT = 30;
const int SWIMMER_HIT = 10;
// ----------------------------------------------
// IDs
// ----------------------------------------------
const uint32 BULLET_ID      = 100;
const uint32 ASTEROID_ID    = 200;
const uint32 METEOROID_ID   = 300;
const uint32 HEALTH_PU_ID   = 301;
const uint32 DP_LASER_PU_ID = 302;
const uint32 TP_LASER_PU_ID = 303;
const uint32 SWIMMER_ID     = 201;
const uint32 SHIP_ID        = 666;

// impacts
const int IMPACTS[] = {3,6,10,20};
const int METEOROID_IMPACT = 20;
const int HEALTH_INCREASE  = 20;

const int HEALTH_BONUS_THRESHOLD =  20;
const int DOUBLE_LASER_THRESHOLD =  50;
const int TRIPLE_LASER_THRESHOLD = 100;